This key sets the default state of the checkbox.
</description>
</key>
- <key name="had-bluetooth-devices-setup" type="b">
- <default>false</default>
- <summary>Whether the default Bluetooth adapter had set up devices associated to it</summary>
- <description>
- The shell will only show a Bluetooth menu item if a Bluetooth
- adapter is powered, or if there were devices set up associated
- with the default adapter. This will be reset if the default
- adapter is ever seen not to have devices associated to it.
- </description>
- </key>
<key name="last-selected-power-profile" type="s">
<default>"power-saver"</default>
<summary>The last selected non-default power profile</summary>
const RfkillManagerInterface = loadInterfaceXML('org.gnome.SettingsDaemon.Rfkill');
const rfkillManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(RfkillManagerInterface);
-const HAD_BLUETOOTH_DEVICES_SETUP = 'had-bluetooth-devices-setup';
-
const BtClient = GObject.registerClass({
Properties: {
'available': GObject.ParamSpec.boolean('available', '', '',
_init() {
super._init();
- this._hadSetupDevices = global.settings.get_boolean(HAD_BLUETOOTH_DEVICES_SETUP);
-
this._client = new GnomeBluetooth.Client();
this._client.connect('notify::default-adapter-powered', () => {
this.notify('active');
if (this._devicesChangedId)
return;
this._devicesChangedId = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
- this._syncHadSetupDevices();
delete this._devicesChangedId;
this.emit('devices-changed');
return GLib.SOURCE_REMOVE;
});
}
- _syncHadSetupDevices() {
- const {defaultAdapter} = this._client;
- if (!defaultAdapter || !this._adapter)
- return; // ignore changes while powering up/down
-
- const [firstDevice] = this.getDevices();
- const hadSetupDevices = !!firstDevice;
-
- if (this._hadSetupDevices === hadSetupDevices)
- return;
-
- this._hadSetupDevices = hadSetupDevices;
- global.settings.set_boolean(
- HAD_BLUETOOTH_DEVICES_SETUP, this._hadSetupDevices);
- }
-
_connectDeviceNotify(device) {
const path = device.get_object_path();